#ifndef ACTIONFILTRE_H
#define ACTIONFILTRE_H

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "fenetreimage.h"
#include "matrices.h"

class ActionFiltre : public QWidget
{
    Q_OBJECT

public:
    explicit ActionFiltre(QWidget * mw);
    ~ActionFiltre();
    void connect(Ui::MainWindow* ui);

    static void contoursSobel(QImage * imageDepart);

private:
    MainWindow * mainWindow;
    FenetreImage * getFenetreImageCourante();
    int adaptatif(QRgb* sousImage, int taille);
    static void imageEnNiveauxDeGris(QImage * imageDepart);
    void imageFlouteeParMoyennage(QImage * imageDepart, int tailleNoyau);

public slots:
    void traitementNiveauxDeGris();
    void traitementNegatif();
    void traitementFlouParMoyennage();
    void traitementFlouGaussien();
    void traitementFlouMedian();

    void detectionContourRoberts();
    void detectionContourSobel();
    void sobelPlusChainage();

    void rehaussement();
    void posterisation();
    void filtreAdaptatif();

    void filtrePersonnalise();
};

#endif // ACTIONFILTRE_H
